package egovframework.npqs.pqi.mobile.util;

import java.util.ArrayList;

import android.util.Log;

//네비게이션을 쓰기위한 사용자 클래스
//작성자     : 김준성
//개발일자   : 20141105
/*
 * pathLv    : 페이지 위치를 숫자로 표현
 * pathArray : 인덱스를 pathLv로 지정하고 이동시마다 페이지의 위치를 기억하고 지운다.
 * pathPrint : pathArray를 받아 현재 위치를 출력한다.
 */
public class Navigation {
	private int pathLv;						//home 이 1
	private ArrayList<String> pathArray;	//
	private String pathPrint;
	
	public Navigation(){
		pathArray = new ArrayList<String>();
		pathPrint = "";
		pathLv = 0;
		pathArray.add("home");
		Log.i("start Navigation", "start navition : "+toString());
	}

	public void addPathLocation(String inputPath) {
		if(pathArray.size()-1==pathLv){
			pathLv += 1;
			pathArray.add(pathLv, ">"+inputPath);
			Log.i("addPathLocation call...", "addPathLocation call...");
		}else{
			try {
				throw new Exception("pathArray 오류입니다.");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	public void delPathLocation(){
		if(pathArray.size()-1==pathLv){
			if(pathLv>0){
				pathArray.remove(pathLv);
				pathLv -= 1;
				Log.i("delPathLocation call...", "delPathLocation call...");
			}
		}else{
			try {
				throw new Exception("pathArray 오류입니다.");
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
	
	public String getPath(){
		boolean flag = true;
		for(int i=0; i<pathArray.size() ; i++){
			if(flag){
				pathPrint = this.pathArray.get(i);
				flag = false;
			}else{
				pathPrint += this.pathArray.get(i);
			}
		}
		Log.i("getPath call..: ","->"+toString());
		return pathPrint;
	}
	
	public String toString(){
		return "current path -> " + pathPrint +", Path level : "
				+ pathLv+" path array size : "+pathArray.size() + "path array : "+pathArray.toString();
	}
}
